package com.atguigu.day11.ploy.p1;
/*
人 养 动物
开闭原则:
   开:对功能的拓展是开放的
   闭:对源码的修改是关闭的
多态: 同一个行为 不同的对象有不同的展示能力
  作用:简化代码 提高代码的复用性
  语法:
     向上转型:
         前提:有继承关系
              有方法重写
              有父类的引用 指向子类的实例(对象)
               Animal a = new Dog();
         向上转型后对象的(a)方法调用:
               编译(javac 写完代码后)看父亲:
                  可以调用父类Animal中所有的方法
               运行(java 点击运行按钮后)看孩子:
                如果重写了  调用子类重写父类的方法
                如果没有重写 调用从父类继承的方法
         注意:
            1.向上转型后 无法使用子类新增的方法

     向下转型:


 */
public class Test2 {
    public static void main(String[] args) {

        Animal a = new Dog();
        a.eat();//调用子类重写的
        a.sleep();//调用从父类继承的
     //   a.lookHome();

        Animal c = new Cat();
        c.eat();
        c.sleep();
       // c.catchMouse();


    }
}
